package co.edu.javeriana.konigsberg.xavier.gui.bean;

import java.math.BigInteger;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;

import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;

import co.edu.javeriana.konigsberg.xavier.dto.CiudadDTO;
import co.edu.javeriana.konigsberg.xavier.servicio.CiudadServicioLocal;

@ManagedBean(name="ciudadBean")
@SessionScoped
public class CiudadBean extends ManagerBean{
	private static final long serialVersionUID = 1L;
	
	@EJB
	private CiudadServicioLocal ciudadServicioLocal;
	
	@ManagedProperty(value="#{departamentoBean}")
	private DepartamentoBean departamentoBean;
	
	public void setDepartamentoBean(DepartamentoBean departamentoBean) {
		this.departamentoBean = departamentoBean;
	}
	
	//====================== Principal Principio ============================//
	
	private BigInteger idCiudad;
	
	private TreeMap<String,BigInteger> ciudades;
	
	public void cuandoDepartamentoCambie() {
		ciudades = new TreeMap<String, BigInteger>();
	   List<CiudadDTO> ciudadDTOs = ciudadServicioLocal.obtenerListaDePadre(departamentoBean.obtenerSeleccionado());
	   for (CiudadDTO ciudadDTO : ciudadDTOs) {
		   ciudades.put(ciudadDTO.getNombreCiudad(), ciudadDTO.getIdCiudad());
	   }
	}
	
	public Map<String, BigInteger> getCiudades() {
		return ciudades;
	}
	public void setCiudades(TreeMap<String, BigInteger> ciudades) {
		this.ciudades = ciudades;
	}
	
	public CiudadDTO obtenerSeleccionado(){
		CiudadDTO departamentoDTO = ciudadServicioLocal.obtenerCiudadPorId(getIdCiudad());
		return departamentoDTO;
	}

	public BigInteger getIdCiudad() {
		return idCiudad;
	}

	public void setIdCiudad(BigInteger idCiudad) {
		this.idCiudad = idCiudad;
	}

	
	
	//====================== Principal Fin ============================//
	
	//====================== Segunda Principio ============================//
	
	private BigInteger idCiudad_02;
	
	private TreeMap<String,BigInteger> ciudades_02;
	
	public void cuandoDepartamentoCambie_02() {
		ciudades_02 = new TreeMap<String, BigInteger>();
	   List<CiudadDTO> ciudadDTOs = ciudadServicioLocal.obtenerListaDePadre(departamentoBean.obtenerSeleccionado_02());
	   for (CiudadDTO ciudadDTO : ciudadDTOs) {
		   ciudades_02.put(ciudadDTO.getNombreCiudad(), ciudadDTO.getIdCiudad());
	   }
	}
	
	public Map<String, BigInteger> getCiudades_02() {
		return ciudades_02;
	}
	public void setCiudades_02(TreeMap<String, BigInteger> ciudades_02) {
		this.ciudades_02 = ciudades_02;
	}
	
	public CiudadDTO obtenerSeleccionado_02(){
		CiudadDTO departamentoDTO = ciudadServicioLocal.obtenerCiudadPorId(getIdCiudad());
		return departamentoDTO;
	}

	public BigInteger getIdCiudad_02() {
		return idCiudad_02;
	}

	public void setIdCiudad_02(BigInteger idCiudad_02) {
		this.idCiudad_02 = idCiudad_02;
	}
	
	//====================== Segunda Fin ============================//
	
	//====================== Tercera Principio ============================//
	
		private BigInteger idCiudad_03;
		
		private TreeMap<String,BigInteger> ciudades_03;
		
		public void cuandoDepartamentoCambie_03() {
			ciudades_03 = new TreeMap<String, BigInteger>();
		   List<CiudadDTO> ciudadDTOs = ciudadServicioLocal.obtenerListaDePadre(departamentoBean.obtenerSeleccionado_03());
		   for (CiudadDTO ciudadDTO : ciudadDTOs) {
			   ciudades_03.put(ciudadDTO.getNombreCiudad(), ciudadDTO.getIdCiudad());
		   }
		}
		
		public Map<String, BigInteger> getCiudades_03() {
			return ciudades_03;
		}
		public void setCiudades_03(TreeMap<String, BigInteger> ciudades_03) {
			this.ciudades_03 = ciudades_03;
		}
		
		public CiudadDTO obtenerSeleccionado_03(){
			CiudadDTO departamentoDTO = ciudadServicioLocal.obtenerCiudadPorId(getIdCiudad());
			return departamentoDTO;
		}

		public BigInteger getIdCiudad_03() {
			return idCiudad_03;
		}

		public void setIdCiudad_03(BigInteger idCiudad_03) {
			this.idCiudad_03 = idCiudad_03;
		}
		
		//====================== Tercera Fin ============================//
	
}
